home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 58189 / 58189.xpi / modules / PreferenceUtils.jsm < prev    next >
Text File  |  2010-01-06  |  1KB  |  43 lines

  1. /*
  2.  * This class provides some utilities to read and write preferences
  3.  */
  4.  
  5. var EXPORTED_SYMBOLS = [ ];
  6. Components.utils.import("resource://csfiremodules/CsFireCommon.jsm");
  7.  
  8. CsFire.PreferenceUtils = new function() {};
  9.  
  10. /*
  11.  * Reads a string preference from the filesystem.
  12.  */
  13. CsFire.PreferenceUtils.getStringPreference = function(name, defaultValue) {
  14.     var result = defaultValue;
  15.     var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
  16.     if (prefs.getPrefType(name) == prefs.PREF_STRING) {
  17.         try { 
  18.             result = prefs.getCharPref(name);
  19.         }
  20.         catch(e) {
  21.             CsFire.Logger.warn("Failed to read preference (" + name + "): " + e);
  22.             result = defaultValue;
  23.         }
  24.     }
  25.     return result;
  26. }
  27.  
  28. /*
  29.  * Writes a preference to the filesystem
  30.  */
  31. CsFire.PreferenceUtils.setStringPreference = function(name, value) {
  32.     var prefservice = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
  33.     var prefs = prefservice.getBranch("");
  34.     var sString = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  35.     sString.data = value;
  36.     try {
  37.         prefs.setCharPref(name, sString);
  38.     }
  39.     catch(e) {
  40.         CsFire.Logger.error("Failed to write preference (" + name + "): " + e);
  41.     }
  42. }
  43.